package com.dazhewan.utils;

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.LinkedList;

/**
 * @author zhengxuexue
 * @date 2023/12/15 16:39
 * @description
 */
public class FunctionUtil {
    private static final LinkedList<Container> containers = new LinkedList<>();

    public static void addContainer(Container container) {
        containers.add(container);
    }

    /**
     * @method: 获取比例百分数
     * @param: num源数据
     * @param: mark标记，比mark大就进行缩放，否则返回原数据
     * @return: mark标记，比mark大就返回比例，否则返回原数据
     */
    public static double getProportionNum(int num, int mark) {
        if (num <= mark) {
            return num;
        }
        return (BigDecimal.valueOf(mark).divide(BigDecimal.valueOf(num),7,BigDecimal.ROUND_HALF_EVEN)).doubleValue();
    }

    /**
     * @method: 刷新所有组件样式
     */
    public static void refreshStyle() {
        containers.forEach(container -> {
            SwingUtilities.updateComponentTreeUI(container);
        });
    }


    /**
     * @method: 获取项目根路径
     */
    public static String getRootPath() throws IOException {
        final File file = new File("");
        return file.getCanonicalPath();
    }

}
